function identity<Type>(arg:Type):Type{
  return arg
}

/* let myIdentity:<Type> (arg:Type) => Type = identity */

// let myIdentity: <Input>(arg:Input) => Input = identity

/* let myIdentity: { <Type>(arg:Type):Type } = identity */

/* interface GenericIdentityFn {
  <T>(arg:T):T
}
let myIdentity :GenericIdentityFn = identity */

interface GenericIdentityFn<T> {
  (arg:T):T
}
let myIdentity: GenericIdentityFn<string> = identity